home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / Sherlock 2.0 / DevLibSrc / Mac DevLib / mac_about_dialog.c next >
Text File  |  1996-02-05  |  2KB  |  118 lines

  1. /*
  2.     devlib: about dialog.
  3.     This file is used only on the Macintosh.
  4.         
  5.     source:  mac_about_dialog.c
  6.     started: November 30, 1990
  7.     version:
  8.         February 5, 1996.
  9.             Added support for Symantec C.
  10.         November 2, 1995.
  11.             changed w_update to slw_update.
  12.         September 25, 1995.
  13.             #include <Segload.h>.
  14.         January 7, 1994.
  15. */
  16.  
  17. /* Include this before sl.h is included. */
  18. #include <Menus.h>
  19.  
  20. #include <LIBlib.h>
  21.  
  22. #include <LIBdialog.h>
  23.  
  24. #include <mac_gui.h>
  25.  
  26. #include <string.h>
  27.  
  28. #if defined(THINK_C) || defined(SYMANTEC_C)
  29.     #include <pascal.h>
  30. #endif
  31.  
  32. #ifdef applec
  33.     #include <Strings.h>
  34. #endif
  35.  
  36. #ifdef __MWERKS__
  37.     #include <Segload.h>
  38. #endif
  39.  
  40. /*
  41.     Define resource numbers.
  42. */
  43. #define ABOUT_ALERT            128    /* 'ALRT' resource. */
  44. #define LIB_ABOUT_RES_ID    129
  45.                 
  46. /*
  47.     Define item numbers.
  48. */
  49. #define OK_ITEM            1    /* About dialog. */
  50. #define VERSION_ITEM    2
  51.  
  52. #define bound screenBits.bounds
  53.  
  54. /*
  55.     Handle the "About..." dialog.
  56. */
  57. void
  58. about_dialog(void)
  59. {
  60.     DialogPtr    dp;
  61.     short        itemHit;
  62.     Rect        tempRect;
  63.     short        DType;
  64.     Handle        DItem;
  65.     ControlHandle    CItem;
  66.     GrafPtr        old_port;
  67.     
  68.     SL_DISABLE();
  69.     
  70.     /* Save the old GrafPort */
  71.     GetPort(&old_port);
  72.      
  73.     dp = GetNewDialog(LIB_ABOUT_RES_ID, NULL, (WindowPtr)-1);
  74.     if (dp == NULL) {
  75.     
  76.         #ifndef LIB_DONT_USE_ES
  77.             es("Can not find About dialog!!\n");
  78.         #endif
  79.         SysBeep(20);
  80.         while(!Button()) {
  81.             ;
  82.         }
  83.         ExitToShell();
  84.     }
  85.     
  86.     /* Get the version strings from the resource file. */
  87.     GetDItem(dp, VERSION_ITEM, &DType, &DItem, &tempRect);
  88.     
  89.     /* Center the dialog horizontally. */
  90.     center_dialog(dp);
  91.     ShowWindow(dp);
  92.     SelectWindow(dp);
  93.     SetPort(dp);
  94.      
  95.     /* Setup initial conditions */
  96.     hiliteButton(dp); 
  97.      
  98.     for(;;) {
  99.         ModalDialog(NULL, &itemHit); 
  100.         GetDItem(dp, itemHit, &DType, &DItem, &tempRect);
  101.         CItem = (ControlHandle) DItem; 
  102.          
  103.         /* Handle it real time */
  104.         if (itemHit == OK_ITEM) {
  105.             DisposDialog(dp);
  106.             
  107.             /* Update the Sherlock window if it is present. */
  108.             #ifdef SHERLOCK
  109.                 slw_update();
  110.             #endif
  111.             break;
  112.         }
  113.     }
  114.     
  115.     /* Restore the GrafPort */
  116.     SetPort(old_port);
  117. }
  118.